﻿Imports Commander_Wars.Spieletools
''' <summary>
''' Wird zu erstellen des KO's Drake verwendet copyright Nintendo und Intelligent System
''' </summary>
''' <remarks></remarks>
Public Class KODrake
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.Beides)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.Beides)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "DRAKE"
        Armee = Armeen.GE.ToString
        Musik = "Drake"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 3
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name
        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                DeffensivStaerke = New FeuerkrafttabelleSee110
                Bewegungsbonus = New BewegungsboniTabelleSee_1
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
            Case CommanderWarsGameModi.AdvanceWars2
                DeffensivStaerke = New FeuerkrafttabelleSee110
                Bewegungsbonus = New BewegungsboniTabelleSee_1
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
            Case CommanderWarsGameModi.AdvanceWarsDS
                OffensivStaerke = New FeuerkrafttabelleSee12090
                DeffensivStaerke = Nothing
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.AdvanceWarsDC
                OffensivStaerke = New FeuerkrafttabelleCustomSeeOffLuftOff(120, 100, 100)
                DeffensivStaerke = Nothing
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
            Case Else
                OffensivStaerke = Nothing
                DeffensivStaerke = Nothing
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne}
                OffensivStaerke = New FeuerkrafttabelleSee115
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Regen}
        End Select
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If

    End Sub

    Public Overrides Function GetBaublockade(ByVal Spieler As Integer) As Baublockade
        Return New Baublockade(Baublockade.BauBlockade.Sea, Spieler)
    End Function

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)

        If OhneFunktion = False Then
            AlleFeindeBeschaedigen(1)
            MuniTreibrauben(False, True)
            AnimationFeindliche("DRAKEGABE", 2)
        End If
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars2 Then
            DeffensivStaerke = New FeuerkrafttabelleSee120
        ElseIf DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDS Then

        Else
            OffensivStaerke = New FeuerkrafttabelleSee125
        End If
        GabeEingesetzt()
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectMassDamage(1, KOCustom.Power.PowerScript.EffectMassDamage.DamageUnit.AllEnemies))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectStealAmmoFuel(False, True))

                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectMassDamage(2, KOCustom.Power.PowerScript.EffectMassDamage.DamageUnit.AllEnemies))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectStealAmmoFuel(False, True))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectChangeWeather(ObjektSpielfeld.Wetterarten.Regen, 2))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                AlleFeindeBeschaedigen(1)
                MuniTreibrauben(False, True)
                AnimationFeindliche("DRAKEGABE", 2)
            End If
            DeffensivStaerke = New FeuerkrafttabelleSee120
            GabeEingesetzt()
        ElseIf DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars2 Then
            If OhneFunktion = False Then
                AlleFeindeBeschaedigen(2)
                MuniTreibrauben(False, True)
                Dim WZeit As Integer = 2
                AnimationFeindliche("SPEZIALGABE", WZeit)
                BackbufferSpiel.AddAnimation("SCREENFLASH", WZeit, New Point, True, ObjektSpielfeld.TopLayer)
                WetterAendern(ObjektSpielfeld.Wetterarten.Regen, 1)
            End If
            DeffensivStaerke = New FeuerkrafttabelleSee120
            GabeEingesetzt()
        Else
            If OhneFunktion = False Then
                AlleFeindeBeschaedigen(2)
                MuniTreibrauben(False, True)
                Dim WZeit As Integer = 2
                AnimationFeindliche("SPEZIALGABE", WZeit)
                BackbufferSpiel.AddAnimation("SCREENFLASH", WZeit, New Point, True, ObjektSpielfeld.TopLayer)
                WetterAendern(ObjektSpielfeld.Wetterarten.Regen, 2)
            End If
            If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDS Then
            Else
                OffensivStaerke = New FeuerkrafttabelleSee130
            End If
            GabeEingesetzt()
        End If
    End Sub
    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungDrake
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Drake"
        Fein = "Die See"
        Nein = "Hohe Plaetze"
        Beschreibung = New String() {"Ein grossherziger ehemaliger Pirat,", "der kaempfen hasst. Auch ein guter Surfer."}
        Stil = New String() {"Seine Seeeinheiten sind staerker und", "seine Luftwaffe ist schwach."}
        Gabebeschreibung = New String() {"Alle Feinde verliern 1 TP und die haelfte", "ihres Treibstoffes."}
        SpezialgabeBeschreibung = New String() {"Alle Feinde verliern 2 TP und die haelfte", "ihres Treibstoffes. Zu dem bricht ein", "Gewitter herein."}
        GabeKosten = 4
        Spezialgabekosten = 3
        Gaben = New String() {"Tsunami", "Taifun"}
        Synergie = New Decimal() {1.5#, 1.5, 0.5#, -1, -1, 0.5#}
        KONamen = New String() {"EAGLE", "AMY", "JESS", "MAVERIK", "VON BOLT", "TEMPEST"}
        Doppelgabenamen = New String() {"Sturmflut", "Unendliche Tiefen", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe"}
        Gabesaetze = New String() {"Panik ist was fuer Landratten." _
                                , "Zeit dir zu zeigen, wie man Dinge auf dem Meer regelt." _
                                , "Mach dich bereit weggespuelt zu werden." _
                                , "Winke deinen Truppen zum Abschied." _
                                , "Kannst du nicht die Stroemung spueren, die dich aufs Meer zieht?" _
                                , "Drake uebernimmt das Steuer."}
        Siegsaetze = New String() {"Ich bin nur froh, das ueberlebt zu haben." _
                                , "Das war eine raue See." _
                                , "Das haut mich um... Wir haben doch noch gewonnen."}
        Tauschsaetze = New String() {"Langsam Matt. Was ist das Problem?" _
                                    , "Ich muss ihm naechsten Zug auftauchen."}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("DRAKE", "AMY", "Ich muss danach erst mal was essen.", "Du kannst nicht so muede sein.") _
                                              , New DoppelGabesatz("DRAKE", "AMY", "Die See ist mein Reich. Wir sind ein gutes Team.", "Stimmt unsere Faehigkeiten ergaenzen sich.") _
                                              , New DoppelGabesatz("AMY", "DRAKE", "Ich fuehle mich in deiner Schuld.", "Das musst du nicht. Es ist meine Pflicht anderen aus der Patsche zu helfen.") _
                                              , New DoppelGabesatz("AMY", "DRAKE", "Ich wette du moechtest wissen warum ein Schiff schwimmt.", "Vielleicht...aber nicht jetzt ich bin muede.") _
                                              , New DoppelGabesatz("EAGLE", "DRAKE", "Du darfst den naechsten Kampf machen.", "Vielleicht ist der ja auf einem Ozean.") _
                                              , New DoppelGabesatz("EAGLE", "DRAKE", "Dies ist die Macht von Green Earth.", "Das ist richtig. Macht uns nicht wuetend.")}
        Niederlagesaetze = New String() {"Das habt ihr gut gemacht! Ihr habt mich besiegt.", _
                                     "Verflucht! Ich bin geschlagen. Zeit die segel zu setzen und zu fliehen."}

    End Sub
End Class
